use queue::Queue;

fn main() {
    let queue = Queue::new();
    let mut value1 = 10;
    let mut value2 = 20;
    let mut value3 = 30;
    Queue::push_head(queue, &mut value1 as *mut i32 as *mut _);
    Queue::push_head(queue, &mut value2 as *mut i32 as *mut _);
    Queue::push_head(queue, &mut value3 as *mut i32 as *mut _);

    while !Queue::is_empty(queue) {
        println!("Value: {}", unsafe { *(Queue::pop_head(queue) as *mut i32) });
    }

    Queue::free(queue);
}